<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
class NhomsController extends AppController {
    var $name = "Nhoms";
    var $helpers = array('Html','Session');
    var $components = array( 'Session', 'Common', 'Auth');
    // var $components = array( 'Session', 'Common');
    function beforeFilter(){
        parent::beforeFilter();
        $controller = $this->params['controller'];
        $action = $this->params['action'];
        if(isset($controller)){
            $strControllerName =  "<a href='/admin/".$controller."' style='color:#EF7802;text-decoration:none;'>Nhóm </a>";
        }
        if(isset($action)){
            if($action == "admin_index"){
                $strActionName = " » Tìm kiếm";
            }elseif($action == "admin_them"){
                $strActionName = " » Thêm";
            }elseif($action == "admin_sua"){
                $strActionName = " » Chỉnh sửa";
            }
            elseif ($action == "admin_xoa") {
                $strActionName = " » Xóa";
            }elseif ($action == "admin_xem") {
                $strActionName = " » Xem thông tin";
            }else{
               $strActionName = "";
            }
        }

        //Add breadcrumb
        $route = $strControllerName. $strActionName;

        $status = array(
            'hoatdong' => 'Hiển thị',
            'vohieu' => 'Ẩn'
        );

        $this->set('title_for_layout','Quản trị nhóm người dùng');
        $this->set('strControllerName',$controller);
        $this->set('status', $status);
        $this->set('route', $route);
        $this->set('group_system', 1);
    }

    public function admin_index(){
        if(!empty($_GET)){
            if(strlen($_GET['tennhom']) > 0)
            {
                $search['tennhom'] = $_GET['tennhom'];
                $cond['Nhom.tennhom'] = trim($this->Common->html($_GET['tennhom']));
            }

            if(strlen($_GET['tungay']) > 0){

                $search['tungay'] = $_GET['tungay'];
                if($this->Common->is_date($_GET['tungay']))
                {
                    $cond['Nhom.ngaytao >='] = $this->Common->date_convert($_GET['tungay']) . " 00:00:00";
                }
            }

            if(strlen($_GET['denngay']) > 0){
                $search['denngay'] = $_GET['denngay'];
                if($this->Common->is_date($_GET['denngay']))
                {
                    $cond['Nhom.ngaysua <='] = $this->Common->date_convert($_GET['denngay']) . " 00:00:00";
                }
            }

            if($_GET['trangthai'] != 'tatca'){
                $search['trangthai'] = $_GET['trangthai'];
                $cond['Nhom.trangthai'] = $_GET['trangthai'];
            }

            if(!empty($cond)){
                $this->paginate = array(
                    'conditions' => $cond,
                    'order' => 'Nhom.ngaytao desc',
                    'limit' => 20,
                );
                $total = $this->Nhom->find('count', array(
                    'conditions' => $cond,
                    'contain' => false
                ));
            }else{
                $this->paginate = array(
                    'order' => 'Nhom.ngaytao desc',
                    'limit' => 20,
                );
                $total = $this->Nhom->find('count', array(
                    'contain' => false
                ));
            }
        }else{
            $this->paginate = array(
                'order' => 'Nhom.ngaytao desc',
                'limit' => 20,
            );
            $total = $this->Nhom->find('count', array(
                'contain' => false
            ));
        }

        //Tìm ra tất cả dữ liệu với điều kiện
        $datas = $this->paginate();
        //Gán dữ liệu xuống view
        $this->set('datas', $datas );
        $this->set('total', $total );
        if(!empty($search)){
            $this->set('search',$search);
        }
        $this->layout = 'admin';
    }

    public function _check_input($tmp_data = NULL){
        $save = $errors = array();
        $check_enough_field = true;
        if( isset( $tmp_data['tennhom'] ) )
        {
            if( strlen( $tmp_data['tennhom'] ) > 0 )
            {
                $check = $this->_check_exist_tennhom($tmp_data['tennhom']);
                if(empty($check)){
                    $save['tennhom'] = $tmp_data['tennhom'];
                }else{
                    $errors['tennhom'] = array( 'Nhóm đã tồn tại.' );
                }
            }else{
                $errors['tennhom'] = array( 'Vui lòng nhập tên nhóm.' );
            }
        }else{
                $check_enough_field = false;
        }

         $save['mota'] = $tmp_data['mota'];

        return array(
            'save' => $save,
            'errors' => $errors,
            'check_enough_field' => $check_enough_field
        );
    }

    public function _check_exist_tennhom( $nhom_tennhom = NULL ){
        $datas = $this->Nhom->find('first', array(
            'fields' => array('id', 'tennhom'),
            'conditions' => array(
                'Nhom.tennhom' => $nhom_tennhom
            ),
            'contain' => false
        ));
        return $datas;
    }

    public function admin_them(){
        if( !empty($this->data) )
        {
            $tmp_data = $this->Common->html($this->data['Nhom']);

            $check = $this->_check_input($tmp_data);

            $save = $check['save'];
            $errors = $check['errors'];
            $check_enough_field = $check['check_enough_field'];

            // BAT DAU SAVE VAO DATABASE
            if( empty( $errors ) && $check_enough_field )
            {
                $save['trangthai'] = 'hoatdong';
                $save['ngaytao'] = date('Y-m-d H:i:s');
                $save['ngaysua'] = date('Y-m-d H:i:s');
                $save['nguoitao'] = $this->Session->read('nguoidung_id');
                $save['nguoisua'] = $this->Session->read('nguoidung_id');
                $this->Nhom->create();
                $saveAll['Nhom'] = $save;
                if( $this->Nhom->saveAll( $saveAll, array( 'validate' => false ) ) )
                {
                    $this->Session->write( 'message_success', 'Thêm nhóm người dùng thành công thành công.' );
                }else{
                    $this->Session->write( 'message_error', 'Thêm nhóm người dùng thành công thất bại.' );
                }
            }else{
                $this->Nhom->validationErrors = $errors;
            }
        }
        $this->layout = 'admin';
    }

    public function admin_sua( $nhom_id = null ){
        if(!is_numeric($nhom_id))die;
        if(!empty($this->data)){
            $arr_Duplicate = $this->data;
            //lọc html trong chuổi nhập vào
            $tmp_data = $this->Common->html($this->data['Nhom']);
            $save = $errors = array();

            $check_enough_field = true;

            // KIEM TRA TEN USER
            if( isset( $tmp_data['tennhom'] ) )
            {
                if( strlen( $tmp_data['tennhom'] ) > 0 )
                {
                    $save['tennhom'] = $tmp_data['tennhom'];
                }else{
                    $errors['tennhom'] = array( 'Vui lòng nhập tên nhóm.' );
                }
            }else{
                $check_enough_field = false;
            }

            $save['mota'] = $tmp_data['mota'];

            $save['id'] = $nhom_id;

            if( empty( $errors ) && $check_enough_field )
            {
                $save['ngaysua'] = date('Y-m-d H:i:s');
                $save['nguoisua'] = $this->Session->read('nguoidung_id');
                if( $this->Nhom->save($save) )
                {
                    $this->Session->write( 'message_success', 'Chỉnh sửa nhóm người dùng thành công.' );
                }else{
                    $this->Session->write( 'message_error', 'Chỉnh sửa nhóm người dùng thất bại' );
                }
            }else{
                $this->Nhom->validationErrors = $errors;
            }
            $this->set('arr_Duplicate',$arr_Duplicate);
        }else{
            $this->data = $this->Nhom->find('first', array(
                    'fields' => array( 'id', 'tennhom', 'mota' ),
                    'conditions' => array(
                        'Nhom.id' => $nhom_id,
                    ),
            ));
        }
        $this->layout = 'admin';
    }

    public function admin_xoa(){
        if(!empty( $this->data['selected'] )){
            foreach($this->data['selected'] as $nhom_id){
                try{
                    $this->Nhom->delete($nhom_id);
                }catch(Exception $e){
                    echo 'Caught exception: ',  $e->getMessage(), "\n";die;
                }
            }
            $this->Session->write( 'message_success', 'Xoá nhóm thành công.' );
        }else{
            $this->Session->write( 'message_error', 'Xoá nhóm lỗi.' );
        }
        $this->redirect('/admin/nhoms/');
    }

    public function admin_xem( $nhom_id =  null ){
        if( !is_numeric($nhom_id) )die;
        if( is_numeric($nhom_id) ){
            $data = $this->Nhom->find('first', array(
                'conditions' => array(
                    'Nhom.id' => $nhom_id
                ),
            ));
            $this->set('data',$data);
        }
        $this->layout = 'admin';
    }

    public function admin_trangthai( $nhom_id =  null ){
        if( !is_numeric($nhom_id) )die;
        $datas = $this->Nhom->find('first', array(
            'fields' => array( 'id', 'tennhom','trangthai' ),
            'conditions' => array(
                'Nhom.id' => $nhom_id
            ),
            'contain' => false
        ));

        if( $datas['Nhom']['trangthai'] == 'hoatdong' ){
            $this->set( 'nhom_trangthai', 'vohieu' );
            $this->set( 'nhom_value', 'Ẩn' );
        }else{
            $this->set( 'nhom_trangthai', 'hoatdong' );
            $this->set( 'nhom_value', 'Hiển thị' );
        }
        $this->set( 'nhom_id', $nhom_id );
    }

    public function admin_thaydoitrangthai( $nhom_id =  null, $nhom_trangthai = null ){
        if( isset($nhom_id)  && isset($nhom_trangthai) ){
            $save['id'] = $nhom_id;
            $save['trangthai'] = $nhom_trangthai;
            $save['ngaysua'] = date('Y-m-d H:i:s');
            $save['nguoisua'] = $this->Session->read('nguoidung_id');
            if($this->Nhom->save($save)){
                $this->Session->write( 'message_success', 'Thay đổi trạng thái nhóm người dùng thành công.' );
            }else{
                $this->Session->write( 'message_error', 'Thay đổi trạng thái nhóm người dùng lỗi.' );
            }
            $this->redirect('/admin/nhoms/');
        }else{
            die;
        }
    }
}
?>
